/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package compiladores2;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.util.Scanner;

/**
 *
 * @author Yoas
 */
public class Lectura {
    /* Función que lee el archivo del cuál se realizará el análisis léxico
     * No recibe ningún parámetro
     * Obtiene la ruta donde se está ejecutando el programa
     * Pide el nombre del archivo a leer
     * Retorna un arreglo de cadenas que contendrá las palabras a reconocer, por cada renglón
     * en el archivo existe un arreglo de cadenas
     * En caso de no poder leer el archivo se devolverá null y aparecerá un mensaje de error
     */
    String[] lectura(){
        String linea = "";
        Scanner sc=new Scanner(System.in);               
        String archivo="";
        int i=0;
        File file = new File("");
        //Función para almacenar la ruta donde se ejecutó el programa 
        System.out.println(file.getAbsolutePath());
        try {
                System.out.println("Escriba el nombre del archivo a leer incluyendo la extensión (Ej. Archivo.txt).");
                archivo=sc.nextLine();
                FileReader fr = new FileReader (file.getAbsolutePath()+"\\"+archivo);
                BufferedReader prim = new BufferedReader(fr);
                while((linea=prim.readLine())!=null){          
                    i=i+1;   //Obtiene el número de renglones del archivo                
                }
        }catch(Exception e){ System.out.println("Error:el archivo no existe o está mal escrito");}
        String cadena[] = new String [i];
        for(int j=0;j<i;j++)
            cadena[j]="";
        i=0;
        try {              
                FileReader fr = new FileReader (file.getAbsolutePath()+"\\"+archivo);
                BufferedReader br = new BufferedReader(fr);
                while((linea=br.readLine())!=null){          
                    cadena[i]=cadena[i]+linea;
                    i=i+1;                   
                }
                for(int j=0;j<i;j++)
                    if(cadena[j].length()!=0)
                        cadena[j]=cadena[j]+"=";
        }catch(Exception e){ System.out.println("Error:el archivo no existe o está mal escrito");}
        return cadena;
    }
}
